diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFrameLayout.kt')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFrameLayout.kt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFrameLayout.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFrameLayout.kt new file mode 100644 index 000000000..a5370af20 --- /dev/null +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFrameLayout.kt @@ -0,0 +1,43 @@ +package org.yuzu.yuzu_emu.features.settings.ui + +import android.content.Context +import android.util.AttributeSet +import android.widget.FrameLayout + +/** + * FrameLayout subclass with few Properties added to simplify animations. + * Don't remove the methods appearing as unused, in order not to break the menu animations + */ +class SettingsFrameLayout : FrameLayout { + private val mVisibleness = 1.0f + + constructor(context: Context?) : super(context!!) + constructor(context: Context?, attrs: AttributeSet?) : super(context!!, attrs) + + constructor( + context: Context?, + attrs: AttributeSet?, + defStyleAttr: Int + ) : super(context!!, attrs, defStyleAttr) + + constructor( + context: Context?, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context!!, attrs, defStyleAttr, defStyleRes) + + var yFraction: Float + get() = y / height + set(yFraction) { + val height = height + y = (if (height > 0) yFraction * height else -9999) as Float + } + var visibleness: Float + get() = mVisibleness + set(visibleness) { + scaleX = visibleness + scaleY = visibleness + alpha = visibleness + } +} |